home *** CD-ROM | disk | FTP | other *** search
- ;; $Id: regdump.inc,v 1.2 2004/12/14 22:46:25 hpa Exp $
- ;; -----------------------------------------------------------------------
- ;;
- ;; Copyright 2003 H. Peter Anvin - All Rights Reserved
- ;;
- ;; This program is free software; you can redistribute it and/or modify
- ;; it under the terms of the GNU General Public License as published by
- ;; the Free Software Foundation, Inc., 53 Temple Place Ste 330,
- ;; Boston MA 02111-1307, USA; either version 2 of the License, or
- ;; (at your option) any later version; incorporated herein by reference.
- ;;
- ;; -----------------------------------------------------------------------
-
- ;;
- ;; regdump.inc
- ;;
- ;; Dump as much as possible of the register state; for debugging
- ;;
-
- disk_dumpregs:
- mov ah,02h
- call dumpregs
- int 13h
- ret
-
- dumpregs:
- push gs
- push fs
- push es
- push ds
- push ss
- push cs
- pushad
- pushfd
-
- push cs
- pop ds
-
- mov bp,sp
- mov di,regnames
-
- mov cx,9 ; 9 32-bit registers
- .reg8:
- mov si,[di]
- inc di
- inc di
- call cwritestr
- mov eax,[bp]
- add bp,4
- call writehex8
- loop .reg8
-
- mov cx,7 ; 6 16-bit registers
- .reg4:
- mov si,[di]
- inc di
- inc di
- call cwritestr
- mov eax,[bp]
- inc bp
- inc bp
- call writehex4
- loop .reg4
-
- call crlf
-
- popfd
- popad
- add sp,4 ; Skip CS, SS
- pop ds
- pop es
- pop fs
- pop gs
- ret
-
- regnames:
- dw .eflags
- dw .edi
- dw .esi
- dw .ebp
- dw .esp
- dw .ebx
- dw .edx
- dw .ecx
- dw .eax
- dw .cs
- dw .ss
- dw .ds
- dw .es
- dw .fs
- dw .gs
- dw .ip
-
- .eflags db 'EFL: ', 0
- .edi db 13,10,'EDI: ', 0
- .esi db ' ESI: ', 0
- .ebp db ' EBP: ', 0
- .esp db ' ESP: ', 0
- .ebx db 13,10,'EBX: ', 0
- .edx db ' EDX: ', 0
- .ecx db ' ECX: ', 0
- .eax db ' EAX: ', 0
- .cs db 13,10,'CS: ',0
- .ss db ' SS: ',0
- .ds db ' DS: ',0
- .es db ' ES: ',0
- .fs db ' FS: ',0
- .gs db ' GS: ',0
- .ip db ' IP: ',0
-
-
-